package com.yifeng.repo.flink.data.transport.streaming.functions.task;

import com.yifeng.repo.flink.data.transport.config.DataSourceConfig;
import com.yifeng.repo.flink.data.transport.dto.DbTypeEnums;

/**
 * 全量同步任务的工厂类
 * @author lijing
 * @param <T>
 * @since 2023-01-03
 *
 */
public class FullSyncTaskFactory<T> {
    
	/**
	 * 根据不同的数据源类型来返回不同的任务实现类
	 * @return AbstractFullSyncTask
	 */
	public CommonFullSyncTask builder(DataSourceConfig dataSourceConfig) {
		if(DbTypeEnums.MYSQL.getType().equals(dataSourceConfig.getDbType())) {
			return new MysqlFullSyncTask(dataSourceConfig);
		}
		if(DbTypeEnums.ORACLE.getType().equals(dataSourceConfig.getDbType())) {
			return new OracleFullSyncTask(dataSourceConfig);
		}
		//抛出异常，暂时只有mysql和oracle处理task
		return null;
	}
	
}
